package com.mzy.basics.innerClass;//: innerclasses/MultiNestingAccess.java
// Nested classes can access all members of all
// levels of the classes they are nested within.
/**
 * 由这两个例子可以看出，一个内部类被嵌套多少层并不重要。
 * 它能透明地访问所有它所嵌入地外围类地所有成员
 */

/**
 * 可以看到MNA.A.B中，调用方法g（）和方法f（）不需要任何条件
 */
class MNA {
  private void f() {}
  class A {
    private void g() {}
    public class B {
      void h() {
        g();
        f();
      }
    }
  }
}

public class MultiNestingAccess {
  public static void main(String[] args) {
    MNA mna = new MNA();
    MNA.A mnaa = mna.new A();
    MNA.A.B mnaab = mnaa.new B();
    mnaab.h();
  }
} ///:~
